package com.tensquare.auth.config;

import com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.DefaultCookieSerializer;

/**
 * ------------------------------
 * 功能：
 * 作者：WF
 * 微信：hbxfwf13590332912
 * 创建时间：2021/9/3-14:35
 * ------------------------------
 */
@Configuration
@EnableRedisHttpSession
public class MySessionConfig {

    /**
     * 功能: 配置redis的序列化器（此项可配可不配）
     *
     */
    @Bean
    public RedisSerializer<Object> springSessionDefaultRedisSerializer() {
        return new GenericFastJsonRedisSerializer();
    }
    /**
     * 功能:  此项配置代表我们的共享session在指定的tensquare.com这个域名范围内工作。
     *       此项必须指定。
     *
     */
    @Bean
    public CookieSerializer cookieSerializer() {
        DefaultCookieSerializer serializer = new DefaultCookieSerializer();
        serializer.setCookieName("TENSQURESESSION"); // <1> cookie的名称
        serializer.setDomainName("tensquare.com");   //指定了共享的session可以在指定的域名内访问
        return serializer;
    }
}
